Multifunction processing apparatus and control method thereof

ABSTRACT

A program that is to be preferentially loaded into a memory is stored in a specific memory and the program stored in the specific memory is changeable to another program. Thus, the program that is to be preferentially loaded into the memory is thereby made changeable.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an apparatus which can execute aplurality of functions and a control method thereof.

2. Description of the Related Art

Programs of an apparatus, typified by an apparatus such as a digitalmultifunction peripheral, are stored on a hard disk apparatus in binaryformat, loaded into RAM when being executed, and executed under thecontrol of the CPU. In particular, these programs comprise a pluralityof functions, and the capacity of total program data tends to increaseas the digital multifunction peripheral increases in performance andfunction. In a case that the size of program data increases in thismanner, the time required to read out the program from the hard diskapparatus and store it in RAM becomes longer, leading to a longer waituntil it is possible for the user to begin use. Even if a user wishes touse only a part of the digital multifunction peripheral, the user mustwait until programs for all functions are loaded into RAM. In order tosolve this type of problem, it is possible, for example, to prepare aprogram of small size for any particular function, as disclosed inJapanese Patent Laid-Open Publication No. 2004-213469. This documentdiscloses a method in which a program is loaded exclusively for eachfunction of the digital multifunction peripheral to be executed. Byloading a program restricted to a specific function, the time requiredto start up the digital multifunction peripheral can be shortened.

However, since it is conventional for a digital multifunction peripheralto make it possible for all functions to be used, the art of exclusivelyloading a program each time a function is used is not a solution to theabove problem. This is because programs that have been set not to bestarted up will not be started up even if the user requests the functionexecuted by the program. In other words, if the user uses the aboveconventional art to make it possible to use only a particular function(for example, the copy function), functions other than copying cannot beused under that condition.

A means to solve the above problem involves the “division of program”and the “program storage medium” configurations. These configurationsallow preferred functions to be made quickly usable by storing thecorresponding programs in a flash memory, while the remaining programsare stored on the hard disk. When the digital multifunction peripheralis started up, programs corresponding to the preferred function israpidly loaded into a memory from flash memory and made executable, andsubsequently programs for executing the remaining functions aresuccessively loaded into the memory from the hard disk, making eachfunction effective. However, if the programs to be stored in a flashmemory are fixed, the functions to be made preferentially usable afterstarting up the digital multifunction peripheral will always be thesame, and there may be cases in which functions that differ from thefunctions that the user desires are preferentially started up.

SUMMARY OF THE INVENTION

The object of the present invention is to solve the above conventionalproblems.

The present invention provides an apparatus and a control method whichmake it possible to change the program to be preferentially loaded in amemory, and further increases the convenience to the user.

According to an aspect of the present invention, there is provided anapparatus capable of executing a plurality of functions, comprising;

a first storage unit configured to store a plurality of programscorresponding respectively to a plurality of functions;

a second storage unit configured to store a first program to bepreferentially loaded into a memory for implementing the program, amongthe plurality of programs;

a first load control unit configured to load the first program stored inthe second storage unit into the memory;

a second load control unit configured to load a second program stored inthe first storage unit which differs from the first program stored inthe second storage unit into the memory, after loading the first programstored in the second storage unit into the memory; and

a change unit configured to change the first program stored in thesecond storage unit for another program being different from the firstprogram and stored in the first storage unit.

According to an aspect of the present invention, there is provided Amethod for controlling an apparatus having a first storage unit forstoring a plurality of programs which correspond respectively to aplurality of functions, comprising;

a first load step of preferentially loading into a memory a firstprogram stored in a second storage unit storing a program to bepreferentially started up out of the plurality of programs;

a second load step of loading, after the first program stored in thesecond storage unit has been loaded into the memory, a second programstored in the first storage unit that differs from the first programstored in the second storage unit into the memory; and

a change step of changing the first program stored in the second storageunit for another program stored in the first storage unit.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is a diagram showing a system configuration based on a digitalmultifunction peripheral according to an embodiment of the presentinvention.

FIG. 2 is a block diagram showing configurations of a digitalmultifunction peripheral and controller according to a first embodiment.

FIG. 3 is a diagram showing an example of storing a program for using asplit program for fast start up of functions of the digitalmultifunction peripheral according to the first embodiment.

FIG. 4 is a diagram showing an example of entry of a function load tableaccording to the first embodiment.

FIG. 5 depicts an external view of a console unit of the digitalmultifunction peripheral according to the first embodiment.

FIG. 6 is a flowchart showing a process for enabling the preferentialuse of specific functions of the digital multifunction peripheralaccording to the first embodiment.

FIG. 7 is a flowchart showing a process for loading a program of afunction of the digital multifunction peripheral into a RAM according tothe first embodiment.

FIGS. 8A, 8B, and 8C are diagrams showing a situation in which a programfor a function is loaded into a work memory region of RAM by a CPU inthe digital multifunction peripheral according to the first embodiment.

FIG. 9 is a diagram showing a console unit upon selecting a scanfunction in the digital multifunction peripheral according to the firstembodiment.

FIG. 10 is a diagram showing a console unit at the time of power offprocessing, displaying a preferential function to be loaded next in thedigital multifunction peripheral according to the first embodiment.

FIG. 11 is a flowchart showing a process of storing in ROM a program ofa preferential function at the time of power off processing of thedigital multifunction peripheral according to the first embodiment.

FIG. 12 is a diagram showing updating of a function program of thedigital multifunction peripheral according to the first embodiment.

FIG. 13 is a diagram showing updating of a preference flag in a functionload table of the digital multifunction peripheral according to thefirst embodiment.

FIG. 14 is a block diagram showing configurations of a digitalmultifunction peripheral and controller according to a secondembodiment.

FIG. 15 is a diagram showing an example of a time-related preferentialfunction table according to the second embodiment.

FIG. 16 is a flowchart showing an update process of a preferentialfunction information storage unit of the digital multifunctionperipheral according to the second embodiment.

FIG. 17 is a diagram showing an example of a usage configuration of atime and preferential function of the digital multifunction peripheralaccording to the second embodiment of the present invention.

FIG. 18 is a diagram showing a console unit which displays at the timeof power off processing a preferential function to be loaded the nexttime.

FIG. 19 is a diagram which shows storing of a program in a preferentialfunction program storage unit of the digital multifunction peripheralaccording to the second embodiment of the present invention.

FIG. 20 is a diagram showing an example of a function load table afterpower off processing according to the second embodiment.

FIG. 21 is a block diagram showing configurations of a digitalmultifunction peripheral and controller according to a third embodimentof the present invention.

FIG. 22 is a diagram showing an example of data stored in a firstactivated function data storage unit according to the third embodiment.

FIGS. 23A and 23B are diagrams showing an example of an update flagaccording to the third embodiment.

FIG. 24 is a flowchart showing an example of a process of updating firstactivated function data of the digital multifunction peripheralaccording to the third embodiment of the present invention.

FIG. 25 is a flowchart showing an example of processing for updatingfirst activated function data of the digital multifunction peripheralaccording to the third embodiment of the present invention.

FIG. 26 is a diagram showing the status of each flag and table, etc.,when the power of the digital multifunction peripheral is on orrecovering from sleep mode according to the third embodiment.

FIG. 27 is a diagram showing each state after all function programs thatare installed in an HDD are loaded into RAM and all functions areusable.

FIG. 28 is a diagram showing a state in which a user uses a scanningfunction from the state of FIG. 27 and in which the first activatedfunction data storage unit and the update flag have been updated.

FIG. 29 is a diagram showing a state in which a start is furtheradvanced from FIG. 28, a program of a scan function has been stored in apreferential function program storage of ROM, and a function loadingtable has been updated.

FIG. 30 is a diagram showing a configuration of a digital multifunctionperipheral and a controller unit according to a fourth embodiment.

FIG. 31 is a diagram showing a configuration of a program in the case ofusing a split program enabling rapid start-up of the digitalmultifunction peripheral according to the fourth embodiment.

FIGS. 32A, 32B and FIGS. 33A, 33B are diagrams showing a state of a CPUloading from HDD to RAM split program configurations of the digitalmultifunction peripheral according to the fourth embodiment.

FIG. 34 is a flowchart showing start-up processing of the digitalmultifunction peripheral according to the fourth embodiment.

FIGS. 35A, 35B, and 35C are diagrams showing a state of the HDD, RAM,and first activated function data storage unit of the digitalmultifunction peripheral according to a fourth embodiment.

FIGS. 36A, 36B, and 36C are diagrams showing a display state of adisplay unit for each state shown in FIGS. 35A, 35B, and 35C.

FIGS. 37A and 37B are diagrams showing states of the HDD, RAM, firstactivated function data storage unit, and update flag when the firstactivated function data is updated in the digital multifunctionperipheral according to the fourth embodiment.

FIG. 38 is a diagram showing a data example of a first activatedfunction log storage unit according to a fifth embodiment of the presentinvention.

FIG. 39 is a flowchart showing start up processing of the digitalmultifunction peripheral according to the fifth embodiment of thepresent invention.

FIGS. 40A, 40B and FIGS. 41A, 41B are diagrams showing states of theHDD, RAM, and first activated function log storage unit at the time ofstart up of the digital multifunction peripheral according to the fifthembodiment of the present invention.

FIG. 42 is a flowchart showing an update process of a first activatedfunction log of a digital multifunction peripheral according to thefifth embodiment.

FIGS. 43A, 43B and FIG. 44 are diagrams showing states of an HDD, RAM,first activated function log storage unit, and update flag, in a casethat the first activated function log of the digital multifunctionperipheral is updated according to the fifth embodiment.

DESCRIPTION OF THE EMBODIMENTS

Preferred embodiments of the present invention will be described indetail below with reference to the attached drawings. While the presentinvention has been described with reference to exemplary embodiments, itis to be understood that the invention is not limited to the disclosedexemplary embodiments. Moreover, it is not necessarily the case that allof the combinations of characteristics shown in the embodiments aremeans to solve the present invention. In addition, the embodiment willbe explained using the example of a digital multifunction peripheral,but the present invention is not restricted to this apparatus only. Forexample, the present invention can be applied to an image formationapparatus or an image scanning apparatus with a coordinate inputmechanism, or a display apparatus.

FIG. 1 is a diagram showing a system configuration based on a digitalmultifunction peripheral according to an embodiment of the presentinvention.

Reference numeral 304 in FIG. 1 is an Internet communication network. Afirewall 303 connects the Internet 304 to a LAN 40, and executes suchactivities as security management. A device management server 302manages a digital multifunction peripheral 10 and a host PCs 20 and 21connected to the LAN 40. A file server 301 manages access to files sothat a plurality of users connected via the LAN 40 may share file data.

A digital multifunction peripheral 10 has a function of copyingdocuments (copy function), a function of sending and receivingfacsimiles (FAX), a function as a printer (printer function), and afunction as a scanner (scanning). The configuration of the digitalmultifunction peripheral 10 will be described below. A console unit 180has keys and buttons of various types which are user-operated, and adisplay unit 2104 (FIG. 5) which displays items such as messages sent tousers. A scanner 140 scans an original and converts it to image dataaccording to instructions from the console unit 180 or the host PCs 20and 21. A printer 120 receives data from the host PC 20 or 21 or a fileserver 301 and prints it on a recording sheet. A controller 100 controlsthe input and output of image data to the scanner 140 and the printer120 based no instructions from parts such as the console unit 180 andthe host PCs 20 or 21. For example, the controller 100 accumulates inmemory (not shown) inside the controller 100 image data generated by thescanner 140. Alternatively, the image data generated by the scanner 140may be output to the host PCs 20 or 21, or controls printing by theprinter 120. At the time of recovering from a power-saving mode, orpower-on, or recovering from a sleep mode, this digital multifunctionperipheral 10 is capable of preferentially starting up specificfunctions out of a plurality of functions such as copy, facsimile, scan,and print of the digital multifunction peripheral 10. Here, the sleepmode refers to a power-saving mode entered into by the digitalmultifunction peripheral 10.

First Embodiment

FIG. 2 is a block diagram showing the configurations of the digitalmultifunction peripheral 10 and the controller 100 according to a firstembodiment.

The controller 100 connects to the scanner 140, which is an image inputdevice, and the printer 120, which is an image output device. Also, thecontroller 100 controls the input and output of image data and deviceinformation by connecting to the LAN 40 and the public communicationline (WAN) 60. A CPU 1100 is a control unit which controls all of thedigital multifunction peripheral 10. A RAM 1110 provides a work memoryto temporarily store various data during operation of the CPU 1100, andprovides an image memory to temporarily store image data. A ROM 1120 isboot ROM which stores a boot program of this digital multifunctionperipheral 10. Further, the ROM 1120 stores system software thatimplements an effective function, that is, a program containing anoperating system and functions. The RON 1120 is made of, e.g., flashmemory, and writing data in the ROM 1120 is possible. The HDD 1130 is ahard disk drive which stores system software, image data, and softwarecounter values. This system software is for implementing functions suchas copying, faxing, scanning, and printing, and is loaded onto andoperates on the RAM 1110. In addition, each function program has, inaddition to a program to implement the function, data that is necessaryfor the implementation of the function. The software counter has acounter region for counting the number of pages to be printed sorted bypaper size, and a counter region sorted by data processing volume. Thus,pre-set arbitrary reference values are counted up at each processing orprinting, based on the number of images printed or data volume processedby the CPU 1100. The storage region for this counter value need not beconfined to the HDD 1130 only, but any non-volatile memory can be used,e.g., EEPROM.

A LANC 1200 is connected to the LAN 40, and performs the input andoutput of image data for printing and information related to devicecontrol. The multifunction peripheral 10 receives image data via theLANC 1200, corresponding to the input operation by the console unit 180from the host PC 20 or a printing image data management apparatus (notshown in drawings) connected to the LAN 40, and prints an image based onthe image data. A local I/F 1210 is a USB or local I/F such as a USB orcentero, and performs input and output of data by connecting to a hostPC 30 or printer (not shown in drawings) via a cable 50. A modem 1220 isconnected to a public communication line 60 and carries out input andoutput of data. A printer I/F 1300 connects to the printer 120 andcarries out communication with the printer 120. A scanner I/F 1400connects to the scanner 140, and carries out communication with thescanner 140. The printer I/F 1300 and the scanner I/F 1400 transfersimage data synchronously with the operation of the scanner 140 or theprinter 120 that is under control, or transfers image dataasynchronously with respect to the operation of the scanner 140 or theprinter 120. A console unit I/F 1500 is an interface unit with theconsole unit 180 and outputs to the console unit 180 image datadisplayed on the console unit 180. Moreover, the console unit I/F 1500sends to the CPU 1100 data input by a user via the console unit 180.

A function load table 1600 stores in table format data indicating whichof the copying, faxing, scanning, and printing functions of the digitalmultifunction peripheral 10 to preferentially start-up at the time ofpowering on or recovering from sleep mode the digital multifunctionperipheral 10. The configuration of this table is described below. A ROMselection flag 1610 is a flag to sort the read destination of a functionprogram. In a case that the RON selection flag 1610 is “true”, thefunction program is loaded from the ROM 1120 and in a case that “false”,the function program is loaded from the HDD 1130. A preferentialfunction data storage unit 1650 is a characteristic part of the presentembodiment, and stores data instructing which function to preferentiallystart-up when the power is turned on the next time. Specifically, thepreferential function data storage unit 1650 stores the function names.The console unit 180 is equipped with an input unit such as a numericalkeypad or a copy start button and a display unit with a liquid crystaldisplay. Details of this console unit 180, including external appearancedetails, will be explained below. A power supply unit 200 supplieselectric power to each part of the digital multifunction peripheral 10.A system bus 1000 is a bus which connects each of the above partstogether and includes an address bus, data bus, and control signal bus.

FIG. 3 is a diagram showing a storage example of a split program forrapidly starting up functions that are part of the digital multifunctionperipheral according to the first embodiment. Here, programs for allfunctions are stored in the HDD 1130. The ROM 1120 stores programs thatare preferentially started up. Here, an example of storing a program inthe case where a digital multifunction peripheral 10 has copy,facsimile, scan and print functions will be described.

A brief description of a split program will now be provided. This is atechnology in which a large program is divided into small modules, thedivided binary modules are loaded successively onto the RAM 1110, and,whenever that load is finished, the functions corresponding to themodules are successively started up. In the present embodiment, thiskind of split program configuration is included in the digitalmultifunction peripheral 10. By using this configuration, specificfunctions, e.g., copy function, can be preferentially started up afterthe power has been turned on, and, after that, successively starting upeach of a plurality of functions according to a program load order,e.g., print, scan, and facsimile functions.

The ROM 1120 is equipped with an OS 3000 and a preferential functionprogram storage 3001. A preferential function program storage 3001stores in advance one of a plurality of programs stored in the HDD 1130.FIG. 3 shows a program for a copy function out of a plurality offunctions in the HDD 1130 being stored in the preferential functionprogram storage 3001. Moreover, depending on the volume of thepreferential function program storage 3001 and the volume of the HDD1130, more than one program can be stored in the preferential functionprogram storage 3001. Also, the function name of the program(s) storedin the preferential function program storage 3001 is recorded in thepreferential function data storage unit 1650.

To shorten the start up time in this manner, the medium storing thepreferential program is made to be the ROM 1120, which is memory of fastoperation typified by flash memory, etc., instead of the HDD 1130. Inthe case of a digital multifunction peripheral with many functions, inwhich programs are large in size, the HDD 1130 is used for temporarilystoring processing data. Therefore, from the perspective of volume sizenecessary for a memory storage, it is disadvantageous from the viewpointof cost to replace the HDD 1130 with non-volatile memory such as flashmemory. For this reason, the digital multifunction peripheral 10 of thepresent embodiment is equipped with the ROM 1120 (flash memory) ofcomparatively smaller size and the HDD 1130.

The OS (Operating System) 3000 is a base program for controlling all ofthe digital multifunction peripheral 10. Reference numerals 3100 through3103 are data and programs to execute, respectively, copy, facsimile,scan, and print functions. (In the present embodiment, a program anddata for executing a copy function is called a copy program. A similarnaming format will be used for other functions. For example, a programand data for executing a facsimile function is called a FAX program.)

When the digital multifunction peripheral 10 is turned on and startedup, an OS including a boot program is loaded from the ROM 1120 into theRAM 1110. Next, programs stored in the preferential function programstorage 3001 are loaded onto the RAM 1110. In addition, programs otherthan programs loaded from the preferential function program storage 3001are loaded into the RAM 1110 from the HDD 1130. In this way, the CPU1100 can make it possible to execute functions corresponding to theseprograms. Moreover, it becomes possible to use each program as each of aplurality of programs is loaded into the RAM 1110.

FIG. 4 depicts a view illustrating an example showing entry into thefunction load table 1600 according to the present embodiment.

The function load table 1600 comprises four items: an identificationnumber, a function name, a preferential function flag, and a loadedflag. The function name is the name of the function; here, copy, FAX,scan, and print are included. The function names are names foridentifying programs for implementing functions. The preferentialfunction flag is a flag for indicating whether to make it possible touse as a preferential function, where if the flag is “true”, thefunction is used as a preferential function. The loaded flag, if “true”,indicates that the program for that function has already been loadedinto the RAM 1110. Here, program load order is determined according tothe identification number. Therefore, it is possible to alter theloading order of programs by changing the identification number in thetable.

FIG. 5 depicts an external view of the console unit 180 of the digitalmultifunction peripheral 10 in the present embodiment.

The console unit 180 has an instruction section 2000, a power-on switch2101, and a power-off switch 2102. The instruction section 2000 isequipped with a such parts as a numeral keypad and a copy start buttonas indicated above, and a display unit 2104 such as a liquid crystaldisplay. Operating these switches and buttons leads to switching offunctions that are used, start-up instructions being given, and displayof status. Power-on of hardware is accomplished by pressing the power-onswitch 2101. Power-off of hardware is accomplished by pressing thepower-off switch 2102. FIG. 5 shows the situation in which the displayunit 2104 displays a message (“in the process of preferentially startingup the copy function”) preferentially making effective the copyfunction, when the user presses the power-on switch 2101. This isbecause, as indicated in FIGS. 3 and 4, the preferential flagcorresponding to the copy function is set to “true”, and the copyprogram is stored on the preferential function program storage 3001 ofthe RON 1120.

FIG. 6 is a flowchart showing the process in which a specific functionis preferentially made usable according to the digital multifunctionperipheral 10 of the first embodiment. A program to execute this processis stored in the RON 1120, and is executed under the control of the CPU1100. This process flowchart involves loading into the RAN 1110 aprogram of a specific function from the ROM 1120, according to the stateof the function load table 1600, when a user powers on the digitalmultifunction peripheral 10, and makes that function effective. Next,programs for the remaining functions are loaded onto the RAM 1110 fromthe HDD 1130 and made successively effective, and the process isrepeated until all functions of the digital multifunction peripheral 10are enabled.

This process is started when a user powers on the digital multifunctionperipheral 10. First, at Step S1, the OS 3000 stored in the ROM 1120 isloaded onto the RAM 1110. Next, at Step S2, loaded flags of the functionload table 1600 are all set to “false”. Then, at Step S3, the ROMselection flag 1610 is set to “true” and the process proceeds to StepS4. Step S4 is a subroutine which loads a preferential function programstored in the RON 1120 in the RAM 1110. This subroutine will beexplained later.

The process then proceeds to Step S5, in which a program already loadedon the RAM 1110 is made executable. By executing Step S5, only thespecific function (a copy function in the example of FIG. 4) designatedby the function loading table 1600 is enabled for use. Next, at Step S6,the ROM selection flag 1610 is cleared by being set to “false”. Then, atStep S7, programs stored in the HDD 1130 but has not been loaded intothe RAM 1110 are successively loaded into the RAM 1110. This Step S7 isa subroutine whose process will be discussed later. Next, at Step S8,programs for all functions loaded into the RAM 1110 are started up andprocessed.

FIG. 7 is a flowchart showing the process (Steps S4 and S7 of FIG. 6) bywhich the digital multifunction peripheral 10 of the first embodimentloads a function program into the RAM 1110. A program to execute thisprocess is stored in the ROM 1120, and is executed under the control ofthe CPU 1100.

The process shown in this flowchart involves loading a function programfrom the ROM 1120 or the HDD 1130 to the RAM 1110 and updating thecondition of a loaded flag of the function loading table 1600, dependingon the condition of the function loading table 1600 and the ROMselection flag 1610. Here, each program instructed to be loaded by aprogram load pointer is loaded if preferential startup is selected forthat program. Moreover, when the ROM selection flag 1610 is not “true”,a program that has not been loaded yet is loaded even if it has not beenselected for preferential startup.

At Step S11, the program load pointer is reset to a value of 0. Thisprogram load pointer is an internal variable to be used for specifyingthe corresponding function name in the function loading table 1600.Here, for example, the above-mentioned identification number serves as apointer to specify the function. Next, at Step S12, if the ROM selectionflag 1610 is set to “true”, the process proceeds to Step S13 because itis instructed that a program is loaded from the ROM 1120 into the RAM1110. On the other hand, if the ROM selection flag 1610 is not “true”,the process proceeds to Step S15 in order to load a program from the HDD1130. At Step S13, it is determined whether the preferential functionflag of the function specified by the program load pointer is set to“true”. If “true”, the process proceeds to Step S14 because preferentialstartup is selected (in the case of Step S4 of FIG. 6); otherwise (inthe case of Step S7 of FIG. 6), the process proceeds to Step S17 fromStep S13. At Step S14, the function program specified by the programload pointer is read out from the ROM 1120 and loaded into RAM 1110.Also, the loaded flag of that function is set to “true” and the processproceeds to Step S17.

On the other hand, at Step S15, it is determined whether the loaded flagof the function specified by the program load pointer is set to “true”.If set to “true”, the process proceeds to Step S17 since the program forthat function is already loaded into RAM 1110, but if not, the processproceeds to Step S16, and the program for the function specified by theprogram load pointer is read out from the HDD 1130 and loaded into theRAM 1110. Moreover, the loaded flag of that function is set to “true”and the process proceeds to Step S17. At Step S17, the process is endedif the value of the program load pointer specifies the lastidentification number (“3” in the example of FIG. 4), of the functionloading table. If not, the process proceeds to Step S18, and the processreturns to the Step S12 after incrementing (+1) the program loadpointer.

FIGS. 8A-8C depict views illustrating the situation in which the CPU1100 loads programs into the work memory area of the RAM 1110, in thedigital multifunction peripheral 10 according to the first embodiment.

FIG. 8A shows the condition before the power of the digitalmultifunction peripheral 10 is turned on, and every function program isloaded into the RAM 1110 from the ROM 1120 and the HDD 1130. Therefore,this indicates the state of having processed up to Step S2 of theflowchart of FIG. 6. The state of the function loading table 1600 is setto “true” so that the copy function with an identification number of “0”becomes the preferential function. In this condition, there are nofunctions that has been loaded into the RAM 1110.

FIG. 8B is a diagram showing the condition in which the power on switch2101 is pressed, the OS and copy function program are copied from theROM 1120 to the RAM 1110, and the preferential function (copy) has beenexecuted. This corresponds to the situation in which the process up toStep S5 of the flowchart has been completed. In this condition, becausethe copy function program has been developed to the RAM 1110, which isthe main memory, the copy function can be only executed even if otherprograms are not loaded. Moreover, in this FIG. 8B, as the copy functionprogram for executing the copy function has been loaded, only the loadedflag of the copy function of the function loading table 1600 has beenset to “true”.

FIG. 8C is a diagram showing the condition in which all functionprograms of the digital multifunction peripheral 10 have been loadedinto the RAM 1110 from the HDD 1130. This corresponds to the situationin which the process up to Step S8 of the flowchart in FIG. 6 has beencompleted. In this condition, executing all functions of the digitalmultifunction peripheral 10 is possible. Moreover, since all functionprograms are loaded in this FIG. 8C., all of the loaded flags of thefunction loading table 1600 are set to “true”.

FIG. 9 is a diagram showing the state of the console unit 180, in a casethat the scan function has been selected in the digital multifunctionperipheral 10 of the first embodiment.

Here, the operation of the console unit 180 is shown in a case that auser uses the scan function. If the user presses a “scan” functionselection button 2103 of the instruction section 2000 of the consoleunit 180, the display unit 2104 displays “The Scan function has beenselected.” In this way, it is identified that the scan function has beenenabled for use. Moreover, in the first embodiment, when the user usesthe instruction section 2000 and selects the function for use, thefunction name stored in the preferential function data storage unit 1650is updated to “scan”. Moreover, like the print function, in a case of apassive function such as a print function that the digital multifunctionperipheral 10 receives a print job via LAN or local I/F and prints, thedata stored in the preferential function data storage 1650 is updated to“print” after the print job ends.

FIGS. 10 through 13 will be referenced to explain the process by whichthe function to be started up preferentially at the next start up iswritten into the ROM 1120 at the time of turning off the power. This isthe most distinguishing feature of the first embodiment.

FIG. 10 is a diagram showing the state of the console unit 180 of thedigital multifunction peripheral 10 of the first embodiment at the timeof turning the power off which displays the preferential function toexecute the next time power is turned on. Here, a user, after using afunction such as the copy function, promptly turns off the power of thedigital multifunction peripheral 10. By turning the power off often inthis manner, the amount of electrical power used can be remarkablylowered.

A user can turn the power supply of the digital multifunction peripheraloff by pressing the power supply off switch 2102. When the power supplyoff switch 2102 is pressed, interruption of the CPU 1100 occurs, andshutdown processing is executed. Next, electrical power to the powersupply unit 200 is blocked and the power is turned off. When thisoccurs, as shown in the diagram, the display unit 2104 displays amessage to the user that shutdown is in progress as well as a notice ofthe function to be preferentially started up at the next start up.

FIG. 11 is a flowchart showing the process of storing in the ROM 1120the preferential function programs at the time of powering off of thedigital multifunction peripheral 10 according to the first embodiment.The process shown in the flowchart is executed by the CPU 1100 accordingto the program stored in the ROM 1120. This process is started up byinterruption handling generated by pressing the power off switch 2102 ofthe console unit 180. Here, the function program corresponding to thefunction name stored in the preferential function data storage unit 1650is extracted, and stored in the preferential function program storage3001 of the ROM 1120. Moreover, the flowchart shows the process ofsetting the preferential function flag of the function of the functionloading table 1600 to “true” and to turn off the power of the powersupply 200.

First, at Step S21, the function name stored in the preferentialfunction data storage unit 1650 is extracted, and the process thenproceeds to Step S22. If, for example, as in the one example indicatedfor FIG. 9, the scan function has already been selected, the functionname “scan” is extracted. Next, at Step S22, all preferential functionflags of the function loading table 1600 are cleared to “false”. Throughthis process, the instruction for preferential start up is reset, and anew function can be set for preferential start up according to theprocess executed by a step below. Next, at Step S23, the functionprogram corresponding to the function name extracted from thepreferential function data storage unit 1650 at Step S21 is extractedfrom the HDD 1130, and stored in the preferential function programstorage 3001 of the ROM 1120. By this process, updating of the programsstored in the preferential function program storage 3001 of the RON 1120and which is to be preferentially started up, is carried out. Next, atStep S24, the preferential function flag of the function loading table1600 corresponding to the function name stored in the preferentialfunction data storage unit 1650 is set to “true”. Then, at Step S25,instructions to interrupt electrical power to the power supply 200 isgiven and the digital multifunction peripheral 10 is turned off.

FIG. 12 is a diagram showing the updating of a program of the digitalmultifunction peripheral 10 according to the first embodiment. In thisdiagram, “scan” is extracted from the preferential function data storageunit 1650 and stored in the preferential function program storage 3001of the ROM 1120.

Accompanying the process of storing a scan function program is theprocess shown in Step S24 of FIG. 11, in which, of the preferentialfunction flags of the function loading table 1600, the preferentialfunction flag corresponding to the function name of the preferentialfunction data storage unit 1650 extracted at Step S21, is set to “true”.Through this process, the scan function is newly updated to bepreferentially started up (See FIG. 13).

FIG. 13 is a diagram showing the updating of the preferential functionflag of the function loading table 1600 of the digital multifunctionperipheral 10 according to the first embodiment.

FIG. 13 shows the condition in which the scan function program has beenstored in the preferential function program storage 3001, and has beenregistered in the function loading table 1600 as preferential functiondata. Here, the preferential function flag corresponding to the scanfunction with an identification number of “2” is set to “true”.

As explained above, according to the first embodiment, the function tobe preferentially executed is selected by a user, and the correspondingprogram is stored in high speed ROM. When power is turned on, thefunction program is preferentially loaded from ROM into RAM and can thenbe executed.

Second Embodiment

In the first embodiment described above, as shown in FIG. 9, thefunction name of the function selected by the user is stored in thepreferential function data storage unit 1650, and, when the peripheralis next powered on, the corresponding function program is preferentiallyloaded into the RAM 1110. A description of the manner in which data isstored in the preferential function data storage unit 1650 based on dataof the preferential start up function corresponding to the time will begiven. This method enables the automatic updating of functions that arepreferentially started up at the time of turning on the power accordingto the time.

A second embodiment of the present invention will be described in detailbelow.

FIG. 14 is a block diagram showing the configuration of the digitalmultifunction peripheral 10 and the controller according to the secondembodiment of the present invention. Parts that are common between thissecond embodiment and the above first embodiment will be indicated withthe same reference numerals, and their explanation will be abbreviated.New elements in this diagram are a preferential function time table 1652and a real time clock 1653.

FIG. 15 is a diagram showing an example of the preferential functiontime table 1652 according to the second embodiment.

This table stores the time and the corresponding function to bepreferentially started up (the preferential function name). For example,during the period between 5 and 9 A.M., the copy function is registeredto be preferentially started up.

The real time clock 1653 keeps time and supplies time information, andalso has an alarm function that is activated so that a CPU 1100 isinterrupted at a specific time. In the second embodiment, the real timeclock 1653 is set so that interruption occurs at the top of each hour.

FIG. 16 is a flowchart showing update processing for a preferentialfunction data storage unit 1650 of the digital multifunction peripheral10 according to the second embodiment of the present invention. Thisprocessing is started at the time of interruption due to the alarmactivated at the top each hour by the real time clock 1653, and isprocessed by the CPU 1100. The process by which the function name to bepreferentially started up is recorded in the preferential function datastorage unit 1650 based on the time information supplied by the realtime clock 1653 and the function name in the preferential function timetable unit 1652 corresponding to that time, will be described below.

First, at Step S31, the time information kept by the real time clock1653 is extracted. Next, at Step S32, the preferential function namecorresponding to the time information extracted at Step S31 is extractedwith reference to the preferential function time table 1652. Next, atStep S33, the preferential function name extracted at Step S31 is storedin the preferential function data storage unit 1650, and the process isended. Thus, when the function name is recorded in the preferentialfunction data storage unit 1650, the program for that function is storedin the ROM 1120 at power off of the digital multifunction peripheral 10.This process is the same as in the above first embodiment and so itsexplanation will be omitted. Moreover, if, for example, the digitalmultifunction peripheral 10 is presently not executing any process, andif the time supplied by the real time clock 1653 matches thepredetermined time (e.g., at the top of the hour), the function programof the preferential function time table 1652 corresponding to the timemay be stored in the RON 1120.

FIG. 17 is a diagram showing the manner in which the time andpreferential function are utilized in the digital multifunctionperipheral 10 according to the present invention.

FIG. 17 shows an example of a time schedule for using the digitalmultifunction peripheral 10 in the office. For example, after the copyfunction is used at 8:50 AM, the power is turned off at 9:05 AM, and thenext preferential start up function is updated to the printer function,which is the function set for 9 and 11 AM by preferential function timetable 1652 of FIG. 15. In this case, when the digital multifunctionperipheral 10 is powered on at 10 AM in order to print an e-mail, theprint function to be preferentially started up, set at 9:05 AM when thedigital multifunction peripheral 10 was turned off, is started up. Thus,the wait time until printing is started is shortened.

Hence, by turning the power of the digital multifunction peripheral 10on and off frequently, the next program to be preferentially started upupon turning the power on can be set by updating to the correspondingfunction program during power off.

FIG. 18 is a diagram showing the console unit 180 which displays thenext preferential function at the time of powering off of the digitalmultifunction peripheral 10 of the second embodiment of the presentinvention.

As indicated in the diagram, a user can turn the power of the digitalmultifunction peripheral 10 off by pressing a power off switch 2102. Bypressing the power off switch 2102, an interruption to the CPU 1100occurs, and, after executing shutdown processing, electrical power isblocked from power supply unit 200 and the power is turned off. At thistime, the display unit 2104 of the console unit 180 displays to the userthe message that shutdown is in progress as well as the function to bepreferentially started up (in this particular diagram, it is the printfunction) when the digital multifunction peripheral 10 is started upnext time.

FIG. 18 shows an example of turning the power off at 9:05 AM, in whichcase the process of updating the preferential function program andsetting to “true” the preferential function flag corresponding to thepreferential function of a function loading table 1600, is the same asthe process shown in the flowchart of FIG. 11 according to the firstembodiment.

FIG. 19 is a diagram showing the manner in which the print functionprogram is stored in a preferential function program storage 3001 of thedigital multifunction peripheral 10 of the second embodiment of thepresent invention.

FIG. 19 shows an example of extracting “print” from the preferentialfunction data storage 1650 when the power is turned off at 9:05 AM.

FIG. 20 is a diagram showing an example of the function loading table1600 after power off processing according to the second embodiment.

When power is turned off at 9:05 AM, the preferential function flagcorresponding to the print function of the function loading table 1600is set to “true” based on the content of the preferential function timetable 1652 of FIG. 15.

As explained above, according to the second embodiment, it is possibleto automatically update the function to be preferentially started up thenext time power is turned on, based on the time at which power of thedigital multifunction peripheral is turned off and the content of thepreferential function time table. Thus, by frequently turning the poweron and off, the function that has the highest probability of being usedduring a particular time period is started up.

Third Embodiment

Next, the third embodiment of the present invention will be described.In this third embodiment, further improvement on user-friendliness andconvenience is achieved by automatically updating the function to bepreferentially started up based on the use conditions of a user. As thesystem configuration according to the third embodiment is the same asthat of the above first embodiment, an explanation will be omitted.

FIG. 21 is a block diagram showing the configuration of the digitalmultifunction peripheral 10 and the controller 1000 according to thethird embodiment. Moreover, parts that are common with FIG. 2, whichrelates to the above first embodiment, will have the same referencenumerals, and their description will be omitted.

In FIG. 21, a first activated function data storage unit 1740 storesdata concerning the function that was used first when the digitalmultifunction peripheral 10 is turned on or recovers from the sleep moderequiring recovery steps which are the same as those implemented whenpower is turned on. An update flag 1730 is a flag indicating thatupdating has taken place after updating the first activated functiondata storage unit 1740 upon powering on the digital multifunctionperipheral 10 or recovering from the sleep mode requiring recovery stepswhich are the same as those implemented when an electric power is turnedon.

FIG. 22 is a diagram showing the data stored in the first activatedfunction data storage unit 1740 according to the third embodiment.

This first activated function data storage unit 1740 stores firstactivated data comprising function names and preferential functionflags. Function names denote each function, and are data used to specifythe program of a given function. The diagram shows copy, fax, scan, andsend (data transmission function) as functions. The preferentialfunction flag is a flag indicating whether a function is preferentiallyused or not. If the preferential function flag is set to “true” for aparticular function, that the function is handled as the preferentialfunction. In FIG. 22, the copy function is set as the preferentialfunction.

FIGS. 23A and 23B are diagrams showing examples of the update flag 1730according to the third embodiment.

As described above, the update flag 1730 is a flag indicating thatupdating has taken place after updating the contents of the firstactivated function data storage unit 1740 upon powering on the digitalmultifunction peripheral 10 or recovering from the sleep mode requiringrecovery steps which are the same as those implemented when power isturned on. After being changed to “completed”, the first activatedfunction data storage unit 1740 cannot be rewritten, until the digitalmultifunction peripheral 10 is turned from off to on, or until goinginto the sleep mode requiring recovery steps which are the same as thoseimplemented when the power is turned on.

FIG. 23A shows the value of the update flag 1730 at a point when afunction has not been used upon turning the power on or upon recoveryfrom the sleep mode requiring recovery steps which are the same as thoseimplemented when power is turned on. Here, the flag value is “notcompleted”.

FIG. 23B shows the value of the update flag 1730 at a point when afunction has been used upon turning the power on or upon recovery fromthe sleep mode requiring recovery steps which are the same as thoseimplemented when power is turned on. Here, the flag value is“completed”.

FIG. 24 is a flowchart showing the process of updating the firstactivated function data storage unit 1740 of the digital multifunctionperipheral 10 according to the third embodiment of the presentinvention. The program to execute this process is stored in the ROM1120, and is executed under the control of the CPU 1100.

This process is started by turning the digital multifunction peripheral10 on or by recovering from the sleep mode requiring recovery stepswhich are the same as those implemented when the power is turned on. AtStep S41, all function programs are loaded into the RAM 1110 from theHDD 1130. The state at Step S41 corresponds to the end of processingstate at Step S8 of FIG. 6, and is the same as the state of FIG. 8C.Next, it is determined at Step S42 whether or not a job has been issuedby a user. If a job has been issued, the process proceeds to Step S43,where the CPU 1100 reads out the update flag 1730. If the value of theupdate flag 1730 that has been read out is “completed”, updating of thefirst activated function data storage unit 1740 cannot be carried out,and the process is ended.

On the other hand, if the value of the update flag 1730 at Step S43 is“not completed”, the process proceeds to Step S44, where all of thepreferential function flags of the first activated function data of thefirst activated function data storage unit 1740 are set to “false”.Next, at Step S45, the preferential function flag of the first activatedfunction data storage unit 1740 corresponding to the function used bythe job issued at Step S42 is set to “true”. Then, at Step S46, theupdate flag 1730 value is set to “completed”.

Moreover, the job issued at Step S42 is executable if the functionprogram used by the job has been loaded into the RAM 1110, even if atStep S41, all of the function programs have not been loaded into the RAM1110 from the HDD 1130. Thus, when a job is issued, the processes fromStep S43 to Step S46 are executed.

FIG. 25 is a flowchart showing the process by which the first activatedfunction data storage unit 1740 is updated in the digital multifunctionperipheral 10 according to the third embodiment of the presentinvention. The program which executes this process is stored in the ROM1120, and is executed under the control of the CPU 1100.

This process is started upon powering on the digital multifunctionperipheral 10 or recovering from the sleep mode requiring recovery stepswhich are the same as those implemented when the power is turned on.First, at Step S51, the OS 3000 stored in the ROM 1120 is loaded intothe RAM 1110. Next, at Step S52, the CPU 1100 read outs the update flag1730. Then, at Step S53, it is determined whether the value of theupdate flag 1730 is “not completed”. If the value of the update flag1730 is “completed”, the process is ended because updating of the firstactivated function data storage unit 1740 is not possible.

On the other hand, if the value of the update flag 1730 at Step S53 is“not completed”, the process proceeds to the Step S54. Here, the processwaits for a user to issue a job. When the user issues a job, the processadvances to Step S55, and the digital multifunction peripheral 10 isplaced in wait mode for a predetermined period of time. Next, at StepS56, the CPU 1100 again reads out the value of the update flag 1730, anddetermines whether the read out value is “not completed”. If the valueof the update flag 1730 is “not completed”, the process returns to StepS55, where further waiting occurs. In this way, when the value of theupdate flag 1730 becomes “completed” at Step S56, the process advancesto Step S57.

The wait sequence of Step S55 is a sequence for waiting for the processof Steps S44 through S46 of the flowchart indicating update processingof the first activated function data storage unit 1740 of FIG. 24.

Next, at Step S57, all of the preferential function flags of thefunction loading table 1600 are set to “false”. This process enables thetemporary resetting of preferential start up settings, and updating sothat a new function is preferentially started up at a step describedbelow. Next, at Step S58, the program for a function whose preferentialfunction flag of the first activated function data contained in thefirst activated function data storage unit 1740 is set to “true” isextracted from the HDD 1130, and is stored in the preferential functionprogram storage 3001 of the ROM 1120. In this way, in Step S58, thepreferentially started program stored in the ROM 1120 is updated. Next,in Step S59, the preferential function flag of the function loadingtable 1600 corresponding to the function whose preferential functionflag of the first activated function data of the first activatedfunction data storage unit 1740 is set to “true”, is itself set to“true”. In Step S59, the preferential function flag is updated to startup a new preferential function.

FIG. 26 through 29 are diagrams that describe an example of processingoccurring in the digital multifunction peripheral 10 according to thethird embodiment. These diagrams show the state of the ROM 1120, the HDD1130, the function loading table 1600, the first activated function datastorage unit 1740, and the update flag 1730, upon a user using for thefirst time the scan function on the digital multifunction peripheral 10that has the copy function set as the preferential function.

FIG. 26 shows the state of each flag and table when powering on thedigital multifunction peripheral 10 or upon recovering from the sleepmode requiring boot steps identical to those implemented when poweringon.

In this example, the preferential function program stored in the ROM1120 is the copy function program. In the first activated function datastorage unit 1740, the preferential function flag of only the copyfunction is set to “true”, and the preferential function flags of allother functions are “false”. In addition, the preferential function flagof only the copy function is set to “true” in the function loading table1600. At this point, as the program of the function has not been loadedinto the RAM 1110 at this point, all of the loaded flags are “false”.Moreover, the update flag 1730 is also set to “not completed”,indicating that updating has not yet taken place.

FIG. 27 is a diagram showing the situation in which all of the functionprograms installed in the HDD 1130 have been loaded into the RAM 1110and all functions are enabled for use.

Comparison with FIG. 26 reveals that all of the loaded flags of thefunction loading table 1600 have been changed to “true”, indicating thatloading into the RAM 1110 has been taken place.

FIG. 28 is a diagram showing the state in which the user has used thescan function (has issued a scan job) from the state of FIG. 27, and thecontents of the first activated function data storage unit 1740 and theupdate flag 1730 have been updated.

FIG. 28 is a diagram showing each state when processing up to Step S46has been executed in the flowchart indicating the updating of the firstactivated function data storage unit 1740 of FIG. 24. Therefore, herethe preferential function flag corresponding to the scan function of thefirst activated function data storage unit 1740 is set to “true” and theupdate flag 1730 is changed to “completed”.

FIG. 29 is a diagram showing the state further advanced from FIG. 28,and in which the scan function program has been stored in thepreferential function program storage 3001 of the ROM 1120 and thefunction loading table 1600 has been updated.

FIG. 29 is a diagram showing the state when processing up to Step S59has been executed in the flowchart indicating the storage of thepreferential function program of FIG. 25 to the ROM 1120. Here, the scanfunction program has been stored in the preferential function programstorage 3001 of the ROM 1120, and only the preferential function flagcorresponding to the scan function of the function loading table 1600has been set to “true”.

As explained above, according to the third embodiment, greaterconvenience and user-friendliness are achieved by shortening the timerequired for a specific function of the digital multifunction peripheralto become usable, and, ultimately, enabling the use of all functions.

In addition, since the function to be preferentially started up can beautomatically changed depending on the use situation of the user, userfriendliness can be further increased. These advantages also contributeto power conservation by increasing the opportunity to turn the poweroff.

Fourth Embodiment

Next, the fourth embodiment of the present invention will be described,wherein, of the plurality of function programs (split programs) storedin the HDD 1130, the programs set to be preferentially loaded into theRAM 1110 are successively loaded in the RAM 1110, and each function ismade executable. Moreover, as the network configuration including thedigital multifunction peripheral 10 according to the fourth embodimentis essentially identical to the configuration of the previousembodiment, an explanation will be omitted.

FIG. 30 is a diagram showing the configuration of the digitalmultifunction peripheral 10 and the controller unit according to thefourth embodiment. As FIG. 30 includes parts that are common with theconfigurations of FIG. 2 and FIG. 21, these parts will be indicatedusing the same reference numerals and their descriptions will beomitted.

A first activated function log storage unit 1720 stores, as part of alog, the first function to be used when the digital multifunctionperipheral 10 is turned on or when it has recovered from the sleep moderequiring recovery steps identical to those implemented when poweringon. The update flag 1730 records whether either the first activatedfunction data storage unit 1740 or the first activated function logstorage unit 1720 has been updated. That is, if the first activatedfunction data storage unit 1740 or the first activated function logstorage unit 1720 has been updated when the digital multifunctionperipheral 10 has been turned on or has recovered from the sleep moderequiring recovery steps identical to those implemented when poweringon, the fact that updating had been taken place is recorded.

FIG. 31 is a diagram showing the configuration of a program in the casewhere a split program enabling high speed launch is used in the digitalmultifunction peripheral 10 according to the fourth embodiment. Here,the digital multifunction peripheral 10 has copy, fax, send, and scanfunctions, and programs that execute those functions are stored in theHDD 1130.

Reference numerals 3100, 3101, 3102, 3104 and 1135 are, respectively,programs and data that execute copy function, fax function, sendfunction, scan function, and UI display function. According to thefourth embodiment, a program and data that execute the copy function arecalled a copy function program. Programs for other functions will bereferred in the same manner. For example, a program that executes thefax function is called a fax function program. A UI display program 1135includes a copy UI program 1136, a fax UI program 1137, a send UIprogram 1138, and a scan UI program 1139, which are UI programs forcopy, fax, send, and scan functions, respectively. When the digitalmultifunction peripheral 10 is turned on and is starting up, a bootprogram is read out from the RON 1120, then respective function programsare loaded into the RAM 1110 from the HDD 1130, and the CPU 1100 makeseach function executable.

FIGS. 32A and 32B, together with FIGS. 33A and 33B, are diagrams thatshow the condition in which the programs of split program configurationare loaded from the HDD 1130 to the RAM 1110 by the CPU 1100. Here, anexample of starting up the copy function preferentially is described.

FIG. 32A shows a state prior to loading respective function programsfrom the HDD 1130 to the RAM 1110 after powering on the digitalmultifunction peripheral 10. In this state, the RAM 1110 stores noprogram.

FIG. 32B is a diagram showing the state in which the copy program whichhas been set as the preferential function is loaded from the HDD 1130 tothe RAM 1110. In this state, as the copy function program has alreadybeen developed into the RAM 1110, which is the main memory, only thecopy function is executable.

FIG. 33A is a diagram showing the state in which the send function isstarted up and the send function program is loaded into the RAM 1110from the HDD 1130, after the copy function program has been loaded intothe RAM 1110. In this state, the copy function program and the sendfunction program are already loaded into the RAM 1110, so the copyfunction and send function become executable.

FIG. 33B is a diagram showing the state in which all function programsin the digital multifunction peripheral 10 have been loaded into the RAM1110 from the HDD 1130. In this state, all of the functions of thedigital multifunction peripheral 10 are executable.

FIG. 34 is a flowchart showing the start up process of the digitalmultifunction peripheral 10 according to the fourth embodiment of thepresent invention. The program that executes this process is stored inthe ROM 1120, and is executed under the control of the CPU 1100. Thisprocess is started when the digital multifunction peripheral 10 ispowered on or upon recovering from the sleep mode requiring boot stepsalso implemented when powering on.

First, at Step S61, first activated function data is read out from thefirst activated function data storage unit 1740. Next, at Step S62, afunction program with a function name having the preferential functionflag of that first activated function data set to “true” is loaded intothe RAM 1110 from the HDD 1130. This corresponds to the copy functionprogram in the example of FIG. 22. Next, at Step S63, function programswith function names having preferential function flags of firstactivated function data set to “false” are loaded into the RAM 1110 fromthe HDD 1130.

FIG. 35A through 35C are diagrams showing the state of the HDD 1130, theRAM 1110, and the first activated function data storage unit 1740 at thetime of start up of the digital multifunction peripheral 10 according tothe fourth embodiment. An example in which the first activated functiondata storage unit 1740 is in the state of FIG. 22 will be described.

FIG. 35A is a diagram showing the HDD 1130, the RAM 1110, and the firstactivated function data storage unit 1740 immediately after powering on.

FIG. 35B shows the state in which the CPU 1100 has determined that thepreferential function flag of the “copy” function name in the firstactivated function data storage unit 1740 has been set to “true”, andthe copy function program 3100 has been loaded into the RAM 1110 fromthe HDD 1130. Also, the copy UI program 1136, which has a correspondingrelationship to the copy program 3100, is loaded into the RAM 1110. Thisindicates the state in which processing of Step S62 of the flowchart ofFIG. 34 has been completed.

FIG. 35C is a diagram showing the state in which, after loading the copyfunction program 3100 into the RAM 1100, all programs that have functionnames with preferential function flags set to “false” are loaded intothe RAM 1110 from the HDD 1130. This indicates the state in which theprocessing of Step S63 of the flowchart of FIG. 34 has been completed.

FIGS. 36A through 36C are diagrams that describe the contents of thedisplay unit 2104 under each state indicated in FIGS. 35A through 35C.

FIG. 36A shows the contents of the display unit 2104 under the state ofFIG. 35A. In this state, the display unit 2104 does not displayanything, thus revealing that no function can currently be used.

FIG. 36B shows the display content in the state of FIG. 35B. Here, onlythe copy function is shown in the display unit 2104, and it is possibleto recognize that the copy function is usable.

FIG. 36C shows the display content in the state of FIG. 35C. All of thefunctions that the digital multifunction peripheral 10 has are displayedin the display unit 2104, and all of the functions can be used in thisstate.

FIG. 37A and 37B are diagrams describing the state of the HDD 1130, theRAM 1110, the first activated function data storage unit 1740, and theupdate flag 1730 when the first activated function data is updated inthe digital multifunction peripheral 10 according to the fourthembodiment. Here, an example of when a job using the fax function hasbeen issued first is described.

FIG. 37A is a diagram describing the state of the HDD 1130, the RAM1110, the first activated function data storage unit 1740, and theupdate flag 1730 when the power has been turned on and all of thefunction programs have been loaded into the RAM 1110. Here, because thepreferential function flag of the copy function of the first activatedfunction data storage unit 1740 has been set to “true”, the copyfunction program is preferentially loaded into the RAM 1110.

FIG. 37B is a diagram describing the state of the HDD 1130, the RAM1110, the first activated function data storage unit 1740, and theupdate flag 1730 when a job using the fax function has been issuedfirst. Here, the preferential function flag of the fax function of thefirst activated function data storage unit 1740 is set to “true”, andthe preferential function flag of the copy function is set to “false”.Moreover, the update flag 1730 is set to “completed”.

As explained above, according to the fourth embodiment, upon turning thepower on or after recovering from the sleep mode, the function that isexecuted first after power on is set the function that is preferentiallystarted up the next time the power is turned on. Thus, at the time ofpowering on, the function program for executing the function can bepreferentially loaded into RAM and executed. Also, because executablefunctions are displayed according to the load state of that functionprogram, a user-friendly digital multifunction peripheral is afforded tothe user.

Fifth Embodiment

FIG. 38 is a diagram showing an example of data contained in a firstactivated function log storage unit 1720 according to the fifthembodiment of the present invention.

This first activated function log storage unit 1720 is composed of 3items, i.e., function name, number of times used, and loaded flag, andstores a log in which functions that were used as first activatedfunctions are recorded. Function names denote their respectivefunctions, and are data that are used to specify programs forimplementing functions. The number of times a function has been usedfirst upon turning the digital multifunction peripheral on or recoveringfrom the sleep mode requiring boot steps also required during power onis recorded as the number of times used. Under the loaded flag column, avalue of “true” indicates that the corresponding function program hasbeen loaded into the RAM 1110.

FIG. 39 is a flowchart showing the start up process of the digitalmultifunction peripheral 10 according to the fifth embodiment of thepresent invention. A program for executing this process is stored in theROM 1120 and is executed under the control of the CPU 1100. This processis started when the digital multifunction peripheral 10 is turned on orupon recovering from the sleep mode requiring boot steps alsoimplemented when powering on.

First, at Step S71, all of the loaded flags of the first activatedfunction log storage unit 1720 are set to “false”. Next, at Step S72,the first activated function log is read out from the first activatedfunction load storage unit 1720. Next, at Step S73, it is determinedwhether there is “false” among the loaded flags of the first activatedfunction log, that is, whether or not there is a program that has notyet been loaded. If the “false” exists, the process advances to StepS74, and the program corresponding to the function having the mostnumber of times (number of times used) out of the functions whose loadedflags are “false”, is loaded into the RAM 1110 from the HDD 1130, as thefunction that is started up as the first activated function. In thisway, after the loading of the program is completed, the loaded flag ofthat program that has just been loaded is set to “true” at Step S75.Next, the process returns to Step S73, and it is determined whetherthere is a loaded flag of the first activated function log storage unit1720 that has the value “false”. The absence of a “false” valueindicates that all function programs have been loaded into the RAM 1110from the HDD 1130, and therefore the loading process into the RAM 1110is ended.

FIGS. 40A and 40B, and 41A and 41B are diagrams that describe the stateof the HDD 1130, the RAM 1110, and the first activated function logstorage unit 1720 at the time of start up of the digital multifunctionperipheral 10 according to the fifth embodiment. Here, the firstactivated function data storage unit 1740 is in the state indicated inFIG. 38, and an example of starting up the digital multifunctionperipheral 10 according to the flowchart of FIG. 39 will be described.

FIG. 40A is a diagram showing the HDD 1130, the RAM 1110, and the firstactivated function log storage unit 1720 immediately after the power ofthe digital multifunction peripheral 10 is turned on. Here, no programhas been loaded into the RAM 1110.

FIG. 40B is a diagram showing the state in which only the copy functionprogram 3100 has been loaded into the RAM 1110. Here, the copy functionprogram, which has the greatest number of times (100) used, is firstloaded into the RAM 1110 based on the number of times used stored in thefirst activated function log storage unit 1720. In this state, theloaded flag of only the copy function of the first activated functionlog storage unit 1720 is set to “true”.

FIG. 41A shows the situation in which, after the copy function programhas been loaded into the RAM 1110, the send function program 3104 (withthe next highest number of times used) is then loaded, followed by thescan function program 3101 (with the next highest number of times used).In this situation, the loaded flags of the copy function program, thesecond function program, and the scan function program of the firstactivated function log storage unit 1720 has been set to “true”.

Further, FIG. 41B shows the state in which all of the function programshave been loaded into the RAM 1110. In this state, the loaded flags ofthe programs corresponding to all of the functions in the firstactivated function log storage unit 1720 are set to “true”.

FIG. 42 is a flowchart showing update processing of the first activatedfunction log storage unit 1720 of the digital multifunction peripheral10 according to the fifth embodiment. The program that executes thisfunction is stored in the ROM 1120, and is executed under the control ofthe CPU 1100. This process is started when the digital multifunctionperipheral 10 is turned on, or upon recovering from the sleep moderequiring boot steps also implemented when turning the power on.

First, at Step S81, loading of all of function programs from the HDD1130 to the RAM 1110 has been completed. The state at Step S81 is thestate shown in FIG. 41B. Next, Step S82 involves waiting for a user toissue a job, and, when the job has been issued, reading out the updateflag 1730 at Step S83. If the value of the read out flag is “completed”,the process is ended. On the other hand, if the value of the read outflag is “not completed”, the process advances to Step S84, and thenumber of times of usage of the function of the first activated functionlog storage unit 1720 corresponding to the function used by the issuedjob is incremented by 1. Next, at Step S85, the value of the update flag1730 is set to “completed”.

The job executed at Step S82 can be executed even if all functionprograms have not been loaded into the RAM 1110 from the HDD 1130 atStep S81, as long as the program for the function to be used by theissued job has been loaded into the RAM 1110. Thus, Steps S83 throughS85 are preferentially executed when the issued job is executed.

FIGS. 43A and 43B, as well as FIG. 44 are diagrams that describe thestate of the HDD 1130, the RAM 1110, the first activated function logstorage unit 1720, and the update flag 1730 at the time of updating thefirst activated function log.

Here, the original state of the first activated function log storageunit 1720 is the state shown in FIG. 38. After turning the power on, anexample in which a job that first uses the fax function has been issuedwill be described.

FIG. 43A is a diagram that shows the state of the HDD 1130, the RAM 110,the first activated function log storage unit 1720, and the update flag1730 when all function programs have been loaded into the RAM 1110.

FIGS. 43B and 44 are diagrams that show the state of the HDD 1130, theRAM 1110, the first activated function log storage unit 1720, and theupdate flag 1730 when a job first using the fax function has been issuedfrom the state of FIG. 43A. First, when the fax job is issued, thenumber of times indicating that the fax function of the first activatedfunction log storage unit 1720 has been used is incremented by 1, asindicated by FIG. 43B. This corresponds to the state of having executedup to Step S84 of the flowchart of FIG. 42. Next, as indicated in FIG.44, the update flag 1730 is rewritten to “completed”. The flowchart ofFIG. 42 shows the state in which up to Step S85 has been executed.

As explained above, according to the fifth embodiment, after electricpower is turned on, the function program having the greatest number oftimes indicating that the function has been first started up ispreferentially loaded into RAM and the function becomes executable.Consequently, the probability that the function desired by a user israpidly launched becomes higher. In this manner, a user-friendly digitalmultifunction peripheral can be afforded to the user.

Other Embodiments

As described above, embodiments of the present invention have beendescribed in detail. However, the present invention can also be appliedto systems configured by a plurality of devices, or can be applied to anapparatus consisting of one device only.

Moreover, the present invention is also achieved by directly orindirectly supplying to a system or device, software programs thatimplement the functions of the above embodiments, wherein the computerof the system or device reads out the programs supplied to it andexecutes them. In this case, as long as the functionality of a programis present, the embodiment need not have a program.

Therefore, in order to implement the function processing of the presentinvention in a computer, the program code itself installed in thatcomputer is for implementing the present invention. That is, in theclaims of the present invention, computer programs themselves, whichimplement the function processing of the present invention, areincluded. In this case, the format of the program, whether it be objectcode, a program executed by a interpreter, or script data supplied by anOS, does not matter as long as it has the functionality of a program.

A variety of storage media can be used to supply the program. Forexample, the following media can be used: floppy (registered trademark)disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R,CD-RW, magnetic tape, non-volatile memory card, ROM, DVD (DVD-ROM,DVD-R), etc.

As another method of supplying a program, a web page can be accessedthrough the Internet using a browser on a client computer, and theprogram can be downloaded to a storage medium such as a hard diskthrough the web page. In this case, what is downloaded may be thecomputer program itself of the present invention, or a compressed filethat has an automatic installation function. It is also possible toimplement the present invention by dividing program code that comprisethe program of the present invention into a plurality of files, and thendownloading each file from different web pages. In other words, theclaims of the present invention include a WWW server that makes aplurality of users download program files for implementing the functionprocessing of the present invention.

Moreover, the present invention can also take the form of encoding theprogram and storing it on a storage medium such as a CD-ROM anddelivering it to users. In this case, a user who has passed apredetermined condition can log on to a web page on the Internet anddownload a key containing data for decoding the program and install theprogram on the user's computer.

In addition, it is also possible to implement the present invention byhaving the computer execute the read out program. For example, an OSoperating on a computer can carry out all or part of the actualprocessing according to instructions by that program, and actualize thefunction described in the above embodiments.

Furthermore, it is also possible to have the program read out from thestorage medium be written in the memory of a function expansion unitconnected to a computer or a function expansion board inserted into acomputer. In this case, a CPU built into the function expansion board orfunction expansion unit can perform all or part of the actual processingaccording to the instructions by that program, and the function of thepreviously described embodiments can be implemented through thisprocess.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2006-053803, filed Feb. 28, 2006, which is hereby incorporated byreference herein in its entirety.

1. An apparatus capable of executing a plurality of functions,comprising: a first storage unit configured to store a plurality ofprograms corresponding respectively to a plurality of functions; asecond storage unit different from the first storage unit and configuredto store a first program to be preferentially loaded into a memory forimplementing the first program, among the plurality of programs, thememory being different from the first storage unit and the secondstorage unit; a first load control unit configured to preferentiallyload the first program stored in said second storage unit into thememory; a second load control unit configured to load a second programstored in said first storage unit which differs from the first programstored in said second storage unit into the memory, after the first loadcontrol unit preferentially loads the first program stored in saidsecond storage unit into the memory; and a change unit configured toreplace the first program stored in said second storage unit withanother program different from the first program and stored in saidfirst storage unit, so that the another program is next to bepreferentially loaded into the memory by the first load control unitinstead of the first program, wherein the second storage unit isconfigured to operate faster than the first storage unit, wherein thesecond storage unit is configured to store the first program to bepreferentially loaded at power on of the apparatus into the memory forimplementing the first program, among the plurality of programs, whereinthe first load control unit is configured to preferentially load thefirst program stored in said second storage unit into the memory uponpowering on the apparatus, wherein the apparatus further comprises adetermining unit configured to determine that the another programdifferent from the first program is selected for execution at a time ofreceiving an instruction to turn off power to the apparatus, and toconsequently determine that the another program is to be preferentiallyloaded at next power on of the apparatus into the memory instead of thefirst program, and wherein said change unit is configured to replace thefirst program stored in said second storage unit with the anotherprogram, which is stored in said first storage unit, so that the anotherprogram is preferentially loaded at next power on of the apparatus intothe memory by the first load control unit instead of the first program.2. The apparatus according to claim 1, further comprising a display unitconfigured to display a message indicating that a function correspondingto the first program loaded into the memory is executable.
 3. Theapparatus according to claim 1, further comprising: a timer unitconfigured to supply time information; and a function identificationstorage unit configured to store function identification data forspecifying a function to be preferentially started up according to atime, wherein said change unit is configured to replace the firstprogram in said second storage unit with the another program accordingto the time indicated by time information supplied by said timer unit,wherein the another program corresponds to a function expressed by thefunction identification data stored in said function identificationstorage unit.
 4. The apparatus according to claim 3, wherein if the timeinformation supplied by said timer unit indicates a predetermined time,said change unit is configured to replace the first program in saidsecond storage unit with the another program corresponding to thepredetermined time.
 5. The apparatus according to claim 1, wherein saidchange unit is configured to replace the first program with the anotherprogram, which corresponds to a function that was first used afterpowering on said apparatus or recovering from a power saving mode. 6.The apparatus according to claim 1, further comprising a prohibit unitconfigured to prohibit replacing of the another program by said changeunit after replacing of the first program by said change unit, until thenext time power is turned on or recovery from a power saving mode isachieved.
 7. A method for controlling an apparatus including a firststorage unit for storing a plurality of programs which correspondrespectively to a plurality of functions, comprising: a first load stepof preferentially loading into a memory a first program stored in asecond storage unit, the first program being one of the plurality ofprograms that is to be preferentially started up out of the plurality ofprograms, the second storage unit being different from the first storageunit, the second storage unit being configured to operate faster thanthe first storage unit, and the memory being different from the firststorage unit and the second storage unit; a second load step of loading,after the first program stored in said second storage unit has beenpreferentially loaded into the memory in the first load step, a secondprogram stored in said first storage unit that differs from the firstprogram stored in said second storage unit into the memory; and a changestep of replacing the first program stored in said second storage unitwith another program different from the first program and stored in saidfirst storage unit, so that the another program is next to bepreferentially loaded into the memory instead of the first program,wherein the first program is to be preferentially loaded at power on ofthe apparatus into the memory for implementing the first program, amongthe plurality of programs, wherein the first load step preferentiallyloads the first program stored in said second storage unit into thememory upon powering on the apparatus, wherein the method furthercomprises a determining step of determining that the another programdifferent from the first program is selected for execution at a time ofreceiving an instruction to turn off power to the apparatus, andconsequently determining that the another program is to bepreferentially loaded at next power on of the apparatus into the memoryinstead of the first program, and wherein in said change step, the firstprogram stored in said second storage unit is replaced with theanotherprogram, which is stored in said first storage unit, so that theanother program is preferentially loaded at next power on of theapparatus into the memory instead of the first program.
 8. The methodaccording to claim 7, further comprising a step of displaying a messageindicating that a function corresponding to the first program loadedinto the memory is executable.
 9. The method according to claim 7,further comprising a function identification storage step of storingfunction identification data for specifying a function to bepreferentially started up according to time, wherein in said changestep, according to the time, the first program stored in said secondstorage unit is replaced with the another program, which corresponds tothe function identification data stored in said function identificationstorage step.
 10. The method according to claim 9, wherein in saidchange step, if it is a predetermined time, the first program stored insaid second storage unit is replaced with the another programcorresponding to the predetermined time.
 11. The method according toclaim 7, wherein in said change step, the first program stored in saidsecond storage unit is replaced with the another program, whichcorresponds to a function used first either after power of saidapparatus is turned on or after recovering from a power saving mode. 12.The method according to claim 7, further comprising a prohibit step ofprohibiting replacing of the another program after replacing the firstprogram program in said change step, until a next time power of saidapparatus is turned on or recovery is achieved from the power savingmode.
 13. A non-transitory computer-readable storage medium storing aprogram that, when executed by a computer in an apparatus including afirst storage unit for storing a plurality of programs which correspondrespectively to a plurality of functions, causes the computer to executea control method, the method comprising the steps of: a first load stepof preferentially loading into a memory a first program stored in asecond storage unit, the first program being one of the plurality ofprograms that is to be preferentially started up out of the plurality ofprograms, the second storage unit being different from the first storageunit, the second storage unit being configured to operate faster thanthe first storage unit, and the memory being different from the firststorage unit and the second storage unit; a second load step of loading,after the first program stored in said second storage unit has beenpreferentially loaded into the memory in the first load step, a secondprogram stored in said first storage unit that differs from the firstprogram stored in said second storage unit into the memory; and a changestep of replacing the first program stored in said second storage unitwith another program different from the first program and stored in saidfirst storage unit, so that the another program is next to bepreferentially loaded into the memory instead of the first program,wherein the first program is to be preferentially loaded at power on ofthe apparatus into the memory for implementing the first program, amongthe plurality of programs, wherein the first load step preferentiallyloads the first program stored in said second storage unit into thememory upon powering on the apparatus, wherein the method furthercomprises a determining step of determining that the another programdifferent from the first program is selected for execution at a time ofreceiving an instruction to turn off power to the apparatus, andconsequently determining that the another program is to bepreferentially loaded at next power on of the apparatus into the memoryinstead of the first program, and wherein in said change step, the firstprogram stored in said second storage unit is replaced with the anotherprogram, which is stored in said first storage unit, so that the anotherprogram is preferentially loaded at next power on of the apparatus intothe memory instead of the first program.